Android 游戏开发工具包热门问题解答
作者 / Android DevRel 技术主管经理 Wayne Lu
我们在 7 月发布了 Android 游戏开发工具包 (AGDK),并收集了一些开发者提出的热门问题,包括 AGDK 库和工具、Android 内存优化以及绘制图形等。
Android 游戏开发工具包 (AGDK)
https://developer.android.google.cn/games/agdk
AGDK 和游戏引擎
首先,早期新兴的游戏开发者向我们提问如何使用此套 AGDK 库和工具。我们给出如下建议,具体则取决于您的设置:
如果您使用的是 Defold、Godot、Unity 或 Unreal 等热门游戏引擎,您可以根据我们的指南,学习如何在 Android 上开发应用。使用这些游戏引擎可助您专注于构建游戏玩法而非整个技术栈。
如果您使用 Unreal 引擎且针对多个平台 (例如 PC 或主机),Android 游戏开发工具扩展包 (AGDE) 可能会对您的工作流程起到很好的补充效果:
https://developer.android.google.cn/games/agde
我们还为想要自定义和编写自己游戏引擎的开发者提供支持,您可通过我们的 C 或 C++ 文档了解详情:
https://developer.android.google.cn/games/develop/custom/overview
Defold
https://developer.android.google.cn/games/engines/defold/defold-configure
Godot
https://developer.android.google.cn/games/engines/godot/godot-configure
Unity
https://developer.android.google.cn/games/develop/build-in-unity
Unreal
https://developer.android.google.cn/games/engines/unreal
热门游戏引擎
https://developer.android.google.cn/games/engines/engines-overview
选择游戏引擎和工作流程之后,您可以进一步研究我们的工具,例如可检查游戏的 Android Studio 性能剖析器、可分析图形的 Android GPU Inspector 以及可优化帧率和加载时间的 Android Performance Tuner。
Android Studio 性能剖析器
https://developer.android.google.cn/studio/profile/android-profilerAndroid GPU Inspector
https://developer.android.google.cn/agiAndroid Performance Tuner
https://developer.android.google.cn/games/sdk/performance-tuner
游戏模式 API 和干预
您可以阅读更多关于游戏模式 API 的内容,了解如何在用户选择相应的游戏模式时优化游戏,以获得最佳性能或最长电池续航时间: https://developer.android.google.cn/games/gamemode/gamemode-api 您可以了解更多游戏模式干预,这些干预由原始设备制造商 (OEM) 设置,以改善那些不再被开发商更新的游戏的性能。例如: 调整 WindowManager 后台缓冲区的大小,以减少设备的 GPU 负载。
游戏模式干预
https://developer.android.google.cn/games/gamemode/gamemode-interventions调整 WindowManager 后台缓冲区的大小
https://developer.android.google.cn/games/gamemode/gamemode-interventions#windowmanager_backbuffer_resizing
Android 的内存访问
其次,有开发者问到在 Android 与 Windows 中进行游戏开发时,内存访问工作原理的异同。简而言之,要点如下:
游戏需要与系统共享内存。一些设备的可用内存比其他设备少,因此需要开展测试,以检查一系列受支持的设备是否存在内存不足问题。测试应在用户已安装典型应用的设备 (即非全新设备) 上开展。 游戏可分配的内存大小取决于各种因素,例如物理内存量、脏页数和 zRam (用于压缩交换) 总量: https://developer.android.google.cn/games/optimize/memory-allocation 内存不足可能表现为 onTrimMemory() 调用、内存抖动或低内存终止守护进程 (Low Memory Killer) 终止游戏。您可以使用 bugreport 日志检查低内存终止守护进程 (Low Memory Killer) 是否已终止游戏,或者在 Android 11 及更高版本中检查 ApplicationExitInfo,以查看游戏是否因 REASON_LOW_MEMORY 而终止。 避免内存抖动: 当内存较低但又不足以终止游戏时会发生这种情况。您可以通过系统跟踪检测到这一情况,且应该通过减少整体内存占用以避免此问题。 使用 Android 性能剖析器和其他工具检查内存使用情况。
onTrimMemory()
https://developer.android.google.cn/topic/performance/memory.html低内存终止守护进程 (Low Memory Killer)
https://developer.android.google.cn/topic/performance/memory-management#low-memory_killerbugreport
https://developer.android.google.cn/studio/debug/bug-reportApplicationExitInfo
https://developer.android.google.cn/reference/android/app/ApplicationExitInfoREASON_LOW_MEMORY
https://developer.android.google.cn/reference/android/app/ApplicationExitInfo#REASON_LOW_MEMORY内存抖动
https://developer.android.google.cn/games/optimize/memory-allocation#avoid-thrashing系统跟踪
https://developer.android.google.cn/topic/performance/tracingAndroid 性能剖析器
https://developer.android.google.cn/studio/profile/memory-profiler其他工具
https://developer.android.google.cn/games/optimize/memory-allocation#use-available-tools
在 Android 中绘制图形
第三,我们收到了有关如何在 Android 中绘制图形的问题。您可以借助以下选项实现此目标: OpenGL ES 或 Vulkan 图形 API:
了解如何通过初始化变量以及使用游戏循环、场景和对象进行渲染,为 C++ 游戏引擎配置 OpenGL ES 图形: https://developer.android.google.cn/games/agdk/configure-graphics 阅读我们的 Vulkan 指南,了解如何绘制立方体、编译着色器、设置验证层及其他最佳实践: https://developer.android.google.cn/ndk/guides/graphics/getting-started
OpenGL ES
https://developer.android.google.cn/guide/topics/graphics/openglVulkan 图形 API
https://developer.android.google.cn/ndk/guides/graphics
△ Android 游戏开发工具包热门问题解答
欢迎您持续关注官方微信公众账号,随时获取更多资讯。
您可以通过下方二维码向我们提交反馈,或分享您喜欢的内容、发现的问题。您的反馈对我们非常重要,感谢您的支持!
推荐阅读